# [[Course 3. Client Needs and Software Requirements]] #requirements ## Week 1. Introduction to Requirements ### Lesson 1: What is a requirement/requirement activities? - I think it's similar to CAPM project requirements. Collecting requirements from stakeholders. - Definition: "Requirements are specific descriptions of your client's needs" - ![[Screenshot 2022-05-02 at 4.17.12 PM.png]] #### Eliciting Requirements - More then gathering, (asking what they want) - Figuring out what they want and need. - Observe customer in real world. - The right product for the right problem. #### Requirement Activities - Wants - are desired functions that they like to see in the product. - Needs - Core functions required in order to address the specific problem, that the product is intended to solve. - Pick apart the needs and wants. ![[Screenshot 2022-05-02 at 4.20.54 PM.png]] - I guess it's to ask why do they want that wants. #### Expressing Requirements - Express what the clients' need through different means. Like user stories.. #### Prioritising Requirements - Must be done, can be done, will be done. - Product backlog = Requirements Prioritisation - ask client to prioritise - Manage requirements ==How to manage though== - When there are changes. Reorganise them. ### Lesson 2: Types of requirements #### Types of requirements (Business Rules) - Business Requirements - Why is this project need? Why is this product needed? Business value. - Constraint by Business Rules - Privacy policy - Brand uniformity requirement - Government regulation - #### User Requirements - What end users can do on the product. What the product should do for the user. - Express can be though Use Cases. ![[Screenshot 2022-05-02 at 4.46.56 PM.png]] - User Story - "As a ____ i want to ___ so that ____" #### Functional Requirements - Behavior that the product should do or support. described as inputs and outputs. - The system SHOULD... - Need to be specific on what the system should be able to do. - Represented by information flow diagram - How the system function as a whole. #### Non-Functional Requirements - Non-functional requirements serve as a description of "how well" a product must perform. - Complimentary to functional requirement (What it should do), non-functional requirement is "how well it function" - also can be term as Quality requirements - Security requirement is non-functional?! - It makes up large part of requirements. #### Additional Requirements Types - External interface requirements - Where the product sits in larger system. - How the software is located e.g "App must be able to communicate to the customer database and an ad server." - Data Flow Diagram shows where the software located in. - Development constraints - What limiting the product development. - Can hold the development until technology become available. ### Controlling scope - Important to balance defining requirements, then control the scope/requirements. And also manage changes - Scope creeping. - Start with - Product Vision - "The long term strategic concept of the ultimate purpose and form of a new system " - Karl Weigers - What is the value, and how it add value to the customer. - Customer can ask for a scope change even though it's still align with product vision. - "The Scope draws the boundary between what's in and what's out for the project" - Karl Weigers - Part of the part during solicitation phase, to manage expectations. **Techniques to defend Scope creeps** - Make Expectations Clear - Everything have clear start and end date - Draw the scope with your client - Setting boundaries - Client prioritise the requirements - Ask "Is this in scope?" - Estimate the amount of effort. - Velocity - Evaluate the implication of each change - time, cost, scope, quality ### Requirements and Design - Requirements is about the "WHAT". What need to be done to deliver - Design is "HOW". How will development team implement the product to satisfy client's needs. - Agile - work on both requirements and design concurrently. Often combined. - Draw it out in a visual way. - Don't premature limit and constraint the development requirement - e.g User can submit request. vs User click the button. - Which limit ideas, and solutions - Example of how Design sneak into requirements in a bad way, unintentionally. When thinking through, ask myself the following: ![[Screenshot 2022-05-05 at 1.12.02 AM.png]] Don't impose design solution to prematurely. [ ![Coursera](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZpZXdCb3g9IjAgMCAxMTU1IDE2NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjIiPjxwYXRoIGQ9Ik0xNTkuNzUgODEuNTRjMC00NC40OSAzNi42My04MC40NyA4Mi40My04MC40NyA0Ni4xMiAwIDgyLjc2IDM2IDgyLjc2IDgwLjQ3IDAgNDQuMTYtMzYuNjQgODAuOC04Mi43NiA4MC44LTQ1LjggMC04Mi40My0zNi42OC04Mi40My04MC44em0xMjUuNjEgMGMwLTIyLjI0LTE5LjMtNDEuODctNDMuMTgtNDEuODctMjMuNTUgMC00Mi44NSAxOS42My00Mi44NSA0MS44NyAwIDIyLjU3IDE5LjMgNDIuMiA0Mi44NSA0Mi4yIDIzLjkyIDAgNDMuMTgtMTkuNjMgNDMuMTgtNDIuMnptNzA1LjYzIDEuMzFjMC00OC43NCAzOS41OC04MS43OCA3NS41Ny04MS43OCAyNC41MyAwIDM4LjYgNy41MiA0OC4wOCAyMS45MmwzLjc3LTE5aDM2Ljc5djE1NS40aC0zNi43OWwtNC43NS0xNmMtMTAuNzkgMTEuNzgtMjQuMjEgMTktNDcuMSAxOS0zNS4zMy0uMDUtNzUuNTctMzEuMTMtNzUuNTctNzkuNTR6bTEyNS42MS0uMzNjLS4wOS0yMy41MjctMTkuNDctNDIuODM1LTQzLTQyLjgzNS0yMy41OSAwLTQzIDE5LjQxMS00MyA0M3YuMTY1YzAgMjEuNTkgMTkuMyA0MC44OSA0Mi44NiA0MC44OSAyMy44NSAwIDQzLjE0LTE5LjMgNDMuMTQtNDEuMjJ6TTk0NS43OCAyMlY0aC00MC4yM3YxNTUuMzloNDAuMjNWNzUuNjZjMC0yNS4xOSAxMi40NC0zOC4yNyAzNC0zOC4yNyAxLjQzIDAgMi43OS4xIDQuMTIuMjNMOTkxLjM2LjExYy0yMC45Ny4xMS0zNi4xNyA3LjMtNDUuNTggMjEuODl6bS00MDQuMjcuMDF2LTE4bC00MC4yMy4wOS4zNCAxNTUuMzcgNDAuMjMtLjA5LS4yMi04My43MmMtLjA2LTI1LjE4IDEyLjM1LTM4LjI5IDMzLjkzLTM4LjM0IDEuMzc2LjAwNCAyLjc1Mi4wODEgNC4xMi4yM0w1ODcuMSAwYy0yMSAuMTctMzYuMjIgNy4zOS00NS41OSAyMi4wMXpNMzM4Ljg4IDk5LjJWNC4wMWg0MC4yMlY5NC4zYzAgMTkuOTUgMTEuMTIgMzEuNzMgMzAuNDIgMzEuNzMgMjEuNTkgMCAzNC0xMy4wOSAzNC0zOC4yOFY0LjAxaDQwLjI0djE1NS4zOGgtNDAuMjF2LTE4Yy05LjQ4IDE0LjcyLTI0Ljg2IDIxLjkyLTQ2LjEyIDIxLjkyLTM1Ljk4LjAxLTU4LjU1LTI2LjE2LTU4LjU1LTY0LjExem0zOTEuNzQtMTcuNDhjLjA5LTQzLjUxIDMxLjIzLTgwLjc0IDgwLjYyLTgwLjY1IDQ1LjguMDkgNzguMTEgMzYuNzggNzggODAgLjAxIDQuMjczLS4zMyA4LjU0LTEgMTIuNzZsLTExOC40MS0uMjJjNC41NCAxOC42NSAxOS44OSAzMi4wOSA0My4xMiAzMi4xNCAxNC4wNiAwIDI5LjEyLTUuMTggMzguMy0xNi45NGwyNy40NCAyMmMtMTQuMTEgMTkuOTMtMzkgMzEuNjYtNjUuNDggMzEuNjEtNDYuNzUtLjE2LTgyLjY3LTM1LjIzLTgyLjU5LTgwLjd6bTExOC4xMi0xNi4xNGMtMi4yNi0xNS43LTE4LjU5LTI3Ljg0LTM3Ljg5LTI3Ljg3LTE4LjY1IDAtMzMuNzEgMTEuMDYtMzkuNjMgMjcuNzNsNzcuNTIuMTR6bS0yNjEuNCA1OS45NGwzNS43Ni0xOC43MmM1LjkxIDEyLjgxIDE3LjczIDIwLjM2IDM0LjQ4IDIwLjM2IDE1LjQzIDAgMjEuMzQtNC45MiAyMS4zNC0xMS44MiAwLTI1LTg0LjcxLTkuODUtODQuNzEtNjcgMC0zMS41MiAyNy41OC00OC4yNiA2MS43Mi00OC4yNiAyNS45NCAwIDQ4LjkyIDExLjQ5IDYxLjQgMzIuODNsLTM1LjQ0IDE4Ljc1Yy01LjI1LTEwLjUxLTE1LjEtMTYuNDItMjcuNTgtMTYuNDItMTIuMTQgMC0xOC4wNiA0LjI3LTE4LjA2IDExLjQ5IDAgMjQuMyA4NC43MSA4Ljg3IDg0LjcxIDY3IDAgMzAuMjEtMjQuNjIgNDguNTktNjQuMzUgNDguNTktMzMuODItLjAzLTU3LjQ2LTExLjE5LTY5LjI3LTM2Ljh6TTAgODEuNTRDMCAzNi43MyAzNi42My43NCA4Mi40My43NGMyNy45NDctLjE5NiA1NC4xODIgMTMuNzM3IDY5LjY3IDM3bC0zNC4zNCAxOS45MmE0Mi45NzIgNDIuOTcyIDAgMDAtMzUuMzMtMTguMzJjLTIzLjU1IDAtNDIuODUgMTkuNjMtNDIuODUgNDIuMiAwIDIyLjU3IDE5LjMgNDIuMiA0Mi44NSA0Mi4yYTQyLjUwMiA0Mi41MDIgMCAwMDM2LjMxLTIwbDM0IDIwLjI4Yy0xNS4zMDcgMjMuOTU1LTQxLjkwMiAzOC40MzEtNzAuMzMgMzguMjhDMzYuNjMgMTYyLjM0IDAgMTI1LjY2IDAgODEuNTR6IiBmaWxsPSIjMDA1NkQyIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=) ](https://www.coursera.org/) 1. [Client Needs and Software Requirements](https://www.coursera.org/learn/client-needs-and-software-requirements/home/welcome) 2. [Week 1](https://www.coursera.org/learn/client-needs-and-software-requirements/home/week/1) 3. Module 1: Supplemental Resources [Previous](https://www.coursera.org/learn/client-needs-and-software-requirements/lecture/pKg2d/3-1-4-requirements-and-design)[Next](https://www.coursera.org/learn/client-needs-and-software-requirements/exam/mqgPs/module-1-assessment-graded) Item Navigation # Module 1: Supplemental Resources ## Listed below are selected resources related to the topics presented in this module: ### Requirements _A wikipedia explanation about functional requirements if you wanted more information._ "Functional requirement - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/Functional_requirement](https://en.wikipedia.org/wiki/Functional_requirement)> _A glossary of software engineering terms by the IEEE. Would be a good resource to reference if you are unsure about software related terms._ "IEEE standard glossary of software engineering terminology ..." 2008. 19 Nov. 2015 <[http://www.mit.jyu.fi/ope/kurssit/TIES462/Materiaalit/IEEE_SoftwareEngGlossary.pdf](http://www.mit.jyu.fi/ope/kurssit/TIES462/Materiaalit/IEEE_SoftwareEngGlossary.pdf)> _An article that differentiates business requirements from functional requirements._ "Business Requirements vs. Functional Requirements ..." 2014. 19 Nov. 2015 <[http://enfocussolutions.com/business-requirements-vs-functional-requirements/](http://enfocussolutions.com/business-requirements-vs-functional-requirements/)> _A site with great tips for writing requirements._ "Creating a Lean, Mean Requirements Machine | The Agile ..." 2015. 19 Nov. 2015 <[https://www.atlassian.com/agile/requirements](https://www.atlassian.com/agile/requirements)> _An excellent reading about requirements._ "Four Techniques for Defining Project Scope - Jama Software." 2013. 29 Nov. 2018 <[](http://go.jamasoftware.com/rs/jamasoftware/images/wiegers-four-techniques-for-defining-project-scope-EDU.pdf%3E)[http://go.jamasoftware.com/rs/jamasoftware/images/wiegers-four-techniques-for-defining-project-scope-EDU.pdf](http://go.jamasoftware.com/rs/jamasoftware/images/wiegers-four-techniques-for-defining-project-scope-EDU.pdf) > ### Diagrams _Explains data flow diagrams and how to draw them._ "Data Flow Diagram (DFD) - Tripod." 2009. 19 Nov. 2015 <[http://myyee.tripod.com/cs457/dfd.htm](http://myyee.tripod.com/cs457/dfd.htm)> _A wikipedia article on System context diagrams._ "System context diagram - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/System_context_diagram](https://en.wikipedia.org/wiki/System_context_diagram)> _An in depth explanation about information flow diagrams. Written in pretty technical language, so may not be the best resource for those who do not have a computer science background._ "Class notes" 2013. 19 Nov. 2015 <[http://xyuan.myweb.cs.uwindsor.ca/311/slide_plus.pdf](http://xyuan.myweb.cs.uwindsor.ca/311/slide_plus.pdf)>